import 'dart:io';
import 'package:merchants/enum/spu_status.dart';
import 'package:merchants/models/spu.dart';
import 'package:merchants/models/spu_category.dart';

/// 测试数据生成器
/// 用于快速生成测试商品数据
class TestDataGenerator {
  
  /// 生成测试分类数据
  static List<SpuCategory> generateTestCategories() {
    return [
      SpuCategory(id: 'cat_001', name: '数码产品'),
      SpuCategory(id: 'cat_002', name: '服装鞋帽'),
      SpuCategory(id: 'cat_003', name: '家居用品'),
      SpuCategory(id: 'cat_004', name: '食品饮料'),
      SpuCategory(id: 'cat_005', name: '图书音像'),
      SpuCategory(id: 'cat_006', name: '运动户外'),
      SpuCategory(id: 'cat_007', name: '美妆护肤'),
      SpuCategory(id: 'cat_008', name: '母婴用品'),
    ];
  }

  /// 生成测试商品数据
  static List<Map<String, dynamic>> generateTestSpus() {
    return [
      {
        'name': 'iPhone 15 Pro Max',
        'category': 'cat_001',
        'description': '苹果最新旗舰手机，搭载A17 Pro芯片，支持5G网络，配备4800万像素主摄',
        'status': SpuStatus.enabled,
        'price': 9999.00,
        'stock': 50,
        'priority': 100,
      },
      {
        'name': 'MacBook Air M2',
        'category': 'cat_001',
        'description': '轻薄便携的笔记本电脑，搭载M2芯片，续航长达18小时',
        'status': SpuStatus.enabled,
        'price': 7999.00,
        'stock': 30,
        'priority': 90,
      },
      {
        'name': 'Nike Air Max 270',
        'category': 'cat_002',
        'description': '经典运动鞋，舒适缓震，适合日常运动和休闲穿着',
        'status': SpuStatus.enabled,
        'price': 899.00,
        'stock': 100,
        'priority': 80,
      },
      {
        'name': '小米空气净化器',
        'category': 'cat_003',
        'description': '高效空气净化，去除PM2.5、甲醛等有害物质，智能控制',
        'status': SpuStatus.enabled,
        'price': 1299.00,
        'stock': 25,
        'priority': 85,
      },
      {
        'name': '星巴克咖啡豆',
        'category': 'cat_004',
        'description': '精选阿拉比卡咖啡豆，中度烘焙，口感醇厚',
        'status': SpuStatus.enabled,
        'price': 128.00,
        'stock': 200,
        'priority': 70,
      },
      {
        'name': '《三体》科幻小说',
        'category': 'cat_005',
        'description': '刘慈欣科幻代表作，获得雨果奖，讲述人类与三体文明的星际故事',
        'status': SpuStatus.enabled,
        'price': 68.00,
        'stock': 150,
        'priority': 75,
      },
      {
        'name': '瑜伽垫',
        'category': 'cat_006',
        'description': '环保TPE材质，防滑耐用，适合瑜伽、健身等运动',
        'status': SpuStatus.enabled,
        'price': 89.00,
        'stock': 80,
        'priority': 65,
      },
      {
        'name': 'SK-II神仙水',
        'category': 'cat_007',
        'description': '明星护肤产品，含有PITERA精华，改善肤质，提亮肤色',
        'status': SpuStatus.enabled,
        'price': 1599.00,
        'stock': 40,
        'priority': 95,
      },
      {
        'name': '婴儿奶粉',
        'category': 'cat_008',
        'description': '优质配方奶粉，富含DHA、ARA等营养成分，适合0-6个月婴儿',
        'status': SpuStatus.enabled,
        'price': 298.00,
        'stock': 120,
        'priority': 88,
      },
      {
        'name': '华为Mate 60 Pro',
        'category': 'cat_001',
        'description': '华为旗舰手机，搭载麒麟芯片，支持卫星通信，徕卡四摄',
        'status': SpuStatus.enabled,
        'price': 6999.00,
        'stock': 35,
        'priority': 92,
      },
    ];
  }

  /// 生成带规格的商品数据
  static List<Map<String, dynamic>> generateTestSpusWithSpecs() {
    return [
      {
        'name': 'iPhone 15 Pro Max',
        'category': 'cat_001',
        'description': '苹果最新旗舰手机，搭载A17 Pro芯片，支持5G网络，配备4800万像素主摄',
        'status': SpuStatus.enabled,
        'priority': 100,
        'specs': [
          {
            'name': '颜色',
            'values': ['深空黑色', '白色', '蓝色', '原色钛金属'],
          },
          {
            'name': '存储容量',
            'values': ['128GB', '256GB', '512GB', '1TB'],
          },
        ],
        'skuData': [
          {'color': '深空黑色', 'storage': '128GB', 'price': 9999.00, 'stock': 15},
          {'color': '深空黑色', 'storage': '256GB', 'price': 10999.00, 'stock': 12},
          {'color': '白色', 'storage': '128GB', 'price': 9999.00, 'stock': 10},
          {'color': '白色', 'storage': '256GB', 'price': 10999.00, 'stock': 8},
          {'color': '蓝色', 'storage': '128GB', 'price': 9999.00, 'stock': 5},
          {'color': '蓝色', 'storage': '256GB', 'price': 10999.00, 'stock': 3},
          {'color': '原色钛金属', 'storage': '512GB', 'price': 11999.00, 'stock': 7},
          {'color': '原色钛金属', 'storage': '1TB', 'price': 12999.00, 'stock': 5},
        ],
      },
      {
        'name': 'Nike Air Max 270',
        'category': 'cat_002',
        'description': '经典运动鞋，舒适缓震，适合日常运动和休闲穿着',
        'status': SpuStatus.enabled,
        'priority': 80,
        'specs': [
          {
            'name': '颜色',
            'values': ['黑色', '白色', '红色', '蓝色'],
          },
          {
            'name': '尺码',
            'values': ['36', '37', '38', '39', '40', '41', '42', '43', '44'],
          },
        ],
        'skuData': [
          {'color': '黑色', 'size': '36', 'price': 899.00, 'stock': 10},
          {'color': '黑色', 'size': '37', 'price': 899.00, 'stock': 12},
          {'color': '黑色', 'size': '38', 'price': 899.00, 'stock': 15},
          {'color': '白色', 'size': '39', 'price': 899.00, 'stock': 8},
          {'color': '白色', 'size': '40', 'price': 899.00, 'stock': 10},
          {'color': '白色', 'size': '41', 'price': 899.00, 'stock': 12},
          {'color': '红色', 'size': '42', 'price': 899.00, 'stock': 6},
          {'color': '红色', 'size': '43', 'price': 899.00, 'stock': 8},
          {'color': '蓝色', 'size': '44', 'price': 899.00, 'stock': 5},
        ],
      },
    ];
  }

  /// 生成测试图片路径（模拟）
  static List<String> generateTestImagePaths() {
    return [
      'assets/images/test_product_1.jpg',
      'assets/images/test_product_2.jpg',
      'assets/images/test_product_3.jpg',
    ];
  }

  /// 生成商品创建表单数据
  static Map<String, dynamic> generateSpuFormData({
    String? name,
    String? category,
    String? description,
    SpuStatus? status,
    double? price,
    int? stock,
    int? priority,
  }) {
    return {
      'name': name ?? '测试商品',
      'category': category ?? 'cat_001',
      'description': description ?? '这是一个测试商品的详细描述',
      'status': status ?? SpuStatus.enabled,
      'price': price ?? 99.00,
      'stock': stock ?? 100,
      'priority': priority ?? 50,
    };
  }

  /// 生成规格数据
  static List<Map<String, dynamic>> generateSpecData() {
    return [
      {
        'id': 'spec_001',
        'name': '颜色',
        'tags': ['红色', '蓝色', '绿色', '黄色'],
      },
      {
        'id': 'spec_002',
        'name': '尺寸',
        'tags': ['S', 'M', 'L', 'XL', 'XXL'],
      },
      {
        'id': 'spec_003',
        'name': '材质',
        'tags': ['棉质', '丝绸', '羊毛', '合成纤维'],
      },
    ];
  }
} 